package com.gt.aep.base.service.systemManage;

import com.gt.aep.base.dao.systemManage.SysUserDao;
import com.gt.aep.base.entity.systemManage.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class SysUserService {

    @Autowired
    SysUserDao sysUserDao;

    /**
     * 新增用户
     * @param sysUser
     * @return
     */
    public int insert(SysUser sysUser){
        return sysUserDao.insert(sysUser);
    }

    /**
     * 更新用户数据
     * @param sysUser
     * @return
     */
    public int update(SysUser sysUser){
        return sysUserDao.update(sysUser);
    }

    /**
     * 批量删除用户
     * @param ids
     * @return
     */
    public int delete(String[] ids){
        return sysUserDao.delete(ids);
    }

    /**
     * 根据用户信息获取用户列表
     * @param sysUser
     * @return
     */
    public List<SysUser> getList(SysUser sysUser){
        return sysUserDao.getList(sysUser);
    }

    /**
     * 根据用户信息获取符合条件的用户数量
     * @param sysUser
     * @return
     */
    public int getCount(SysUser sysUser){
        return sysUserDao.getCount(sysUser);
    }

    /**
     * 根据用户名查询
     * @param userName
     * @return
     */
    public SysUser getUserByUserName(String userName){
        return sysUserDao.getUserByUserName(userName);
    }

    /**
     * 更新用户头像
     * @param sysUser
     * @return
     */
    public int updateUserPicUrl(SysUser sysUser){
        return sysUserDao.updateUserPicUrl(sysUser);
    }

    /**
     * 根据用户对象获取用户基本信息
     * @param sysUser
     * @return
     */
    public List<SysUser> getUserList(SysUser sysUser){
        return sysUserDao.getList(sysUser);
    }

    /**
     * 根据用户名获取用户基本信息和角色信息
     * @param userName
     * @return
     */
    public Map<String,Object> getUserRoleInfo(String userName) {
        return sysUserDao.getUserRoleInfo(userName);
    }

    /**
     * 根据用户名，登陆者id获取符合条件的用户列表
     *      -用户名模糊查询
     *      分页查询
     * @param curr
     * @param limit
     * @param userName
     * @param loginUid
     * @return
     */
    public List<SysUser> getUserListForIndex(int curr, int limit, String userName, String loginUid) {
        return sysUserDao.getUserListForIndex(curr,limit,userName,loginUid);
    }
    public int getUserCountForIndex(String userName, String loginUid){
        return sysUserDao.getUserCountForIndex(userName,loginUid);
    }

    /**
     * 根据用户id修改用户密码
     * @param userId
     * @param password
     * @return
     */
    public int changePassword(String userId, String password) {
        return sysUserDao.changePassword(userId,password);
    }
}
